/**
 * 项目字段映射定义
 * 
 * PLM系统项目数据字段映射文档
 * 按照核心字段和扩展字段分类
 */

/**
 * 核心字段：直接存储在项目记录顶层
 */
const CORE_FIELDS = {
  // 基础信息
  '_id': '项目ID', 
  'model': '项目型号',
  'projectType': '项目类型(如 霍尔, 磁编, 风机 等)',
  'projectTypeName': '项目类型名称',
  'customerName': '客户名称',
  'applicantName': '申请人名称',
  'priority': '项目优先级',
  'description': '项目描述',
  
  // 时间字段
  'startDate': '项目开始日期(时间戳)',
  'deadline': '项目截止日期(时间戳)',
  'planStartDate': '计划开始日期(时间戳)',
  'planEndDate': '计划结束日期(时间戳)',
  'createTime': '创建时间(时间戳)',
  'updateTime': '更新时间(时间戳)',
  'stateTime': '状态变更时间(时间戳)',
  
  // 状态字段
  'level1': '一级状态(数字)',
  'level2': '二级状态(字符串)',
  'level3': '三级状态(字符串,可选)',
  'level4': '四级状态(字符串,可选)',
  'completionPercentage': '项目完成度',
  'developmentStatus': '开发状态',
  
  // 负责人字段
  'developmentManager': '研发负责人',
  'businessManager': '业务负责人',
  
  // 分支信息
  'branchId': '分支ID',
  'branchName': '分支名称',
  
  // 系统字段
  '_pid': '项目前缀(通常为plm)',
  'extData': '扩展数据容器(对象)'
};

/**
 * 扩展字段：存储在extData对象中
 * 按项目类型分组
 */
const EXT_FIELDS = {
  // 电机控制项目特有字段(霍尔/磁编)
  'MOTOR_CONTROL_FIELDS': {
    'controlMode': '控制模式',
    'controlAlgorithm': '控制算法',
    'controlInterface': '控制接口',
    'rotation': '正反转',
    'controlDescription': '控制详细描述',
    'workTemp': '工作温度',
    'certification': '认证',
    'lowPower': '低功耗',
    'startupTime': '启动时间',
    'conformalCoating': '三防涂层',
    'ratedVoltage': '额定电压',
    'maxPower': '最大功率',
    'maxSpeed': '最大转速',
    'polePairs': '极对数',
    'hasHall': '是否有霍尔',
    'hasFG': '是否有FG',
    'hasBrake': '是否有刹车'
  },
  
  // 控制接口子参数(PWM控制)
  'PWM_CONTROL_FIELDS': {
    'pwmStartDuty': '开机点占空比',
    'pwmStopDuty': '关机点占空比',
    'pwmDutyRange': '占空比范围',
    'pwmFreqRange': '频率范围'
  },
  
  // 控制接口子参数(VSP控制)
  'VSP_CONTROL_FIELDS': {
    'vspStartVoltage': '开机点电压',
    'vspStopVoltage': '关机点电压',
    'vspVoltageRange': '电压范围'
  },
  
  // 保护参数字段
  'PROTECTION_FIELDS': {
    'stallProtection': '堵转保护',
    'overvoltageProtection': '过压保护',
    'undervoltageProtection': '欠压保护',
    'temperatureProtection': '温度保护',
    'overcurrentProtection': '过流保护',
    'currentLimitProtection': '电流限制保护',
    'blockageProtection': '堵塞保护',
    'phaseProtection': '相序保护'
  },
  
  // 样机相关字段
  'SAMPLE_FIELDS': {
    'hasSample': '有无样机',
    'sampleCount': '样机数量',
    'sampleImages': '样机图片'
  },
  
  // 风机项目特有字段
  'FAN_FIELDS': {
    'fanType': '风机类型',
    'airFlow': '风量',
    'staticPressure': '静压',
    'noiseLevel': '噪音等级',
    'efficiency': '效率'
  },
  
  // 水泵项目特有字段
  'PUMP_FIELDS': {
    'pumpType': '水泵类型',
    'flowRate': '流量',
    'headHeight': '扬程',
    'pumpEfficiency': '水泵效率',
    'suctionHeight': '吸程'
  }
};

/**
 * 字段显示规则
 * 
 * 1. 新建项目页面：显示所有表单字段，根据项目类型动态显示特定字段
 * 2. 项目列表页面：显示基本卡片信息和状态信息
 * 3. 项目详情页面：显示所有核心字段和根据项目类型的特定扩展字段
 * 4. 项目编辑页面：根据用户权限和状态动态显示可编辑字段
 */

module.exports = {
  CORE_FIELDS,
  EXT_FIELDS
}; 